iT邦幫忙

2023 iThome 鐵人賽

DAY 24
0
Mobile Development

Android Studio初學系列 第 24

Android Studio初學 DAY24 RxJava應用

  • 分享至 

  • xImage
  •  

昨天介紹完了RxJava,今天就來實際用一次
首先,一樣要先添加依賴,這部分就不再說明了,接著直接來看程式碼

public class MainActivity extends AppCompatActivity {
    TextView textView;
    private Disposable disposable;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.textView);
        // 創建一個 Observable,模擬獲取字符串的操作
        Observable<String> stringObservable = Observable.create(emitter -> {
            // 模擬耗時操作,這裡延遲2秒
            Thread.sleep(2000);

            // 模擬獲取到的字符串
            String result = "這是從網絡獲取的字符串";

            // 將結果發送給觀察者
            emitter.onNext(result);

            // 完成操作
            emitter.onComplete();
        });

        // 訂閱 Observable,並指定觀察者的行為
        disposable = stringObservable
                .subscribeOn(Schedulers.io()) // 在 IO 線程執行
                .observeOn(AndroidSchedulers.mainThread()) // 在主 UI 線程更新 UI
                .subscribe(
                        result -> {
                            // 成功獲取字符串後更新 UI
                            textView.setText(result);
                        },
                        error -> {
                            // 處理錯誤情況
                            Toast.makeText(MainActivity.this, "錯誤:" + error.getMessage(), Toast.LENGTH_SHORT).show();
                        }
                );
    }
}

這個示例創建了一個Observable,該Observable模擬了一個耗時操作(延遲2秒),然後將獲取的字符串發送給觀察者。觀察者訂閱這個Observable,並在IO線程上執行操作,然後切換到主UI線程以更新UI
結果如下


上一篇
Android Studio初學 DAY23 RxJava
下一篇
Android Studio初學 DAY25 Shpae客製元件樣式
系列文
Android Studio初學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言